同時開啟多個瀏覽器
有時候可能需要多個瀏覽器來進行測試,
譬如說用多個瀏覽器來測試WebSocket的聊天室,
(這裡沒有實例,只有語法)
$this->browse(function ($first, $second) {
$first->loginAs(User::find(1))
->visit('/home')
->waitForText('Message');
$second->loginAs(User::find(2))
->visit('/home')
->waitForText('Message')
->type('message', 'Hey Taylor')
->press('Send');
$first->waitForText('Hey Taylor')
->assertSee('Jeffrey Way');
});
語法說明
用visit
方法可以導引到一個指定URL的網頁
$browser->visit('/login');
用visitRoute
方法可以導引到一個指定路由命名
$browser->visitRoute('login');
用back
和forward
方法可以導引到前一頁和後一頁
$browser->back();
$browser->forward();
用refresh
方法可以刷新頁面
$browser->refresh();
調整瀏覽器的視窗
使用resize
方法可以調整瀏覽器視窗的大小
$browser->resize(1920, 1080);
使用maximize
方法可以最大化瀏覽器視窗
$browser->maximize();
使用fitContent
方法可以調整瀏覽器視窗的大小,
讓它可以根據內容自動調整大小
$browser->fitContent();
可以使用move方法來將瀏覽器視窗移到螢幕上的不同位置
$browser->move($x = 100, $y = 100);
身分驗證
如果我們遇到需要身分認證的頁面,
我們可以使用dusk的loginAs
方法來避免每次測試都要登入
use App\Models\User;
$this->browse(function ($browser) {
$browser->loginAs(User::find(1))
->visit('/home');
});
更多關於dusk的方法可以參考 官方文件